package com.hzhr.iot.user.sdk.model.user;

import com.hzhr.iot.core.annotation.CygModel;
import com.hzhr.iot.core.annotation.CygProperty;
import com.hzhr.iot.user.sdk.model.role.RoleModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.List;

@ApiModel(value="UserModel", description="用户模型")
public class UserModel {
    @ApiModelProperty(value="说明 : 用户编号(唯一标识)", required=true)
    @CygProperty(show = "", entityProp = "id")
    private Integer id;

    @ApiModelProperty(value="说明 : 用户名(show_info=true时展示;登录账号;唯一;)", required=true)
    @CygProperty(show = "_show_info", entityProp = "userName")
    private String userName;
    @ApiModelProperty(value="说明 : 真实名称(show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "realName")
    private String realName;
    @ApiModelProperty(value="说明 : 性别:user_service.options.code, typecode='GENDER'(show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "gender")
    private String gender;
    @ApiModelProperty(value="说明 : 性别描述(show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "genderExt_des")
    private String genderDes;
    @ApiModelProperty(value="说明 : 工号(show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "staffNo")
    private String staffNo;
    @ApiModelProperty(value="说明 : 手机号码(show_info=true时展示;11位数字;如果非空则唯一;)")
    @CygProperty(show = "_show_info", entityProp = "phone")
    private Long phone;
    @ApiModelProperty(value="说明 : 身份证(show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "idcard")
    private String idcard;
    @ApiModelProperty(value="说明 : 邮箱(show_info=true时展示;邮箱判断规则;)")
    @CygProperty(show = "_show_info", entityProp = "email")
    private String email;
    @ApiModelProperty(value="说明 : 地址(show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "addr")
    private String addr;
    @ApiModelProperty(value="说明 : 备注(show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "remarks")
    private String remarks;
    @ApiModelProperty(value="说明 : 部门编号(show_info=true时展示)", required=true)
    @CygProperty(show = "_show_info", entityProp = "deptId")
    private Integer deptId;
    @ApiModelProperty(value="说明 : 公司编号(show_info=true时展示)", required=true)
    @CygProperty(show = "_show_info", entityProp = "companyId")
    private Integer companyId;
    @ApiModelProperty(value="说明 : 资源代码(show_info=true时展示)", required=true)
    @CygProperty(show = "_show_info", entityProp = "resourceCode")
    private String resourceCode;
    @ApiModelProperty(value="说明 : 用户代码(show_info=true时展示)", required=true)
    @CygProperty(show = "_show_info", entityProp = "userCode")
    private String userCode;
    @ApiModelProperty(value="说明 : 最近登陆时间(show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "loginTime")
    private Long loginTime;
    @ApiModelProperty(value="说明 : 最近登录IP(show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "loginIp")
    private String loginIp;
    @ApiModelProperty(value="说明 : 用户类型:user_service.options.code, typecode='COMPANY_TYPE'(show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "type")
    private String type;
    @ApiModelProperty(value="说明 : 是否是新用户(关联 ：user_service.options.code, typecode ='YES_NO'; show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "isNewUser")
    private String isNewUser;
    @ApiModelProperty(value="说明 : 密码(show_info=true时展示)", required=true)
    @CygProperty(show = "_show_info", entityProp = "password")
    private String password;
    @ApiModelProperty(value="说明 : 当前令牌(show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "currentToken")
    private String currentToken;
    @ApiModelProperty(value="说明 : 创建时间(show_info=true时展示)")
    @CygProperty(show = "_show_info", entityProp = "createTime")
    private Long createTime;

    @ApiModelProperty(value="说明 : 部门名称(show_dept=true时展示)")
    @CygProperty(show = "_show_dept", entityProp = "deptExt_name")
    private String deptName;
    @ApiModelProperty(value="说明 : 部门代码(show_dept=true时展示)")
    @CygProperty(show = "_show_dept", entityProp = "deptExt_code")
    private String deptCode;
    @ApiModelProperty(value="说明 : 分公司名称(show_dept=true时展示)")
    @CygProperty(show = "_show_dept", entityProp = "")
    private String subCompanyName;
    @ApiModelProperty(value="说明 : 管理站名称(show_dept=true时展示)")
    @CygProperty(show = "_show_dept", entityProp = "")
    private String managementName;

    @ApiModelProperty(value="说明 : 公司名称(show_company=true时展示)", required=true)
    @CygProperty(show = "_show_company", entityProp = "companyExt_name")
    private String companyName;
    @ApiModelProperty(value="说明 : 公司类型(show_company=true时展示; user_service.options.code, typeCode = 'COMPANY_TYPE')", required=true)
    @CygProperty(show = "_show_company", entityProp = "companyExt_type")
    private String companyType;

    @ApiModelProperty(value="说明 : 用户所拥有的角色")
    @CygProperty(show = "_show_role", entityProp = "roleExtList_ ")
    private List<RoleModel> roles;
    @ApiModelProperty(value="说明 : 用户所拥有的第一个角色编号")
    @CygProperty(show = "_show_role", entityProp = "roleExtList[0]_id")
    private Integer firstRoleId;
    @ApiModelProperty(value="说明 : 用户所拥有的第一个角色名称")
    @CygProperty(show = "_show_role", entityProp = "roleExtList[0]_name")
    private String firstRoleName;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Long getPhone() {
        return phone;
    }

    public void setPhone(Long phone) {
        this.phone = phone;
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public String getIdcard() {
        return idcard;
    }

    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getStaffNo() {
        return staffNo;
    }

    public void setStaffNo(String staffNo) {
        this.staffNo = staffNo;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getCurrentToken() {
        return currentToken;
    }

    public void setCurrentToken(String currentToken) {
        this.currentToken = currentToken;
    }

    public Long getLoginTime() {
        return loginTime;
    }

    public void setLoginTime(Long loginTime) {
        this.loginTime = loginTime;
    }

    public String getLoginIp() {
        return loginIp;
    }

    public void setLoginIp(String loginIp) {
        this.loginIp = loginIp;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getSubCompanyName() {
        return subCompanyName;
    }

    public void setSubCompanyName(String subCompanyName) {
        this.subCompanyName = subCompanyName;
    }

    public String getManagementName() {
        return managementName;
    }

    public void setManagementName(String managementName) {
        this.managementName = managementName;
    }

    public String getResourceCode() {
        return resourceCode;
    }

    public void setResourceCode(String resourceCode) {
        this.resourceCode = resourceCode;
    }

    public String getUserCode() {
        return userCode;
    }

    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }

    public Integer getDeptId() {
        return deptId;
    }

    public void setDeptId(Integer deptId) {
        this.deptId = deptId;
    }

    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    public String getDeptCode() {
        return deptCode;
    }

    public void setDeptCode(String deptCode) {
        this.deptCode = deptCode;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getIsNewUser() {
        return isNewUser;
    }

    public void setIsNewUser(String isNewUser) {
        this.isNewUser = isNewUser;
    }

    public String getCompanyType() {
        return companyType;
    }

    public void setCompanyType(String companyType) {
        this.companyType = companyType;
    }

    public List<RoleModel> getRoles() {
        return roles;
    }

    public void setRoles(List<RoleModel> roles) {
        this.roles = roles;
    }

    public Integer getFirstRoleId() {
        return firstRoleId;
    }

    public void setFirstRoleId(Integer firstRoleId) {
        this.firstRoleId = firstRoleId;
    }

    public String getFirstRoleName() {
        return firstRoleName;
    }

    public void setFirstRoleName(String firstRoleName) {
        this.firstRoleName = firstRoleName;
    }

    public Long getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public String getGenderDes() {
        return genderDes;
    }

    public void setGenderDes(String genderDes) {
        this.genderDes = genderDes;
    }

}

